SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_CAJA_I14]  
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : CASSIMELLI                 --*/      
/*---Sistema              : Presupuesto                --*/      
/*---M«dulo               : Empresa                    --*/      
/*---Programa             : Grabaci«n Cabecera         --*/      
/*---                       Movimiento Caja(Ingresos)  --*/      
/*---Script               : tcmovi_c.sql               --*/      
/*---Nombre SP            : SP_TCMOVI_CAJA_I14         --*/      
/*---Desarrollado por     : Javier Flores A.           --*/      
/*---Fecha Creaci«n       : 08/07/1999                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi«n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     :  Carlos R Marquez E        --*/      
/*---Fecha Modificacion   :  29/05/2001                --*/       
/*---Detalle Modificacion :  Considerac Docs en Cartera--*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/        
/*---ModIficado 2 por     :Maribel Julca Rodriguez     --*/        
/*---Fecha ModIficaci,n   :22/01/2005                  --*/         
/*---Detalle ModIficaci,n :ingreso de campos CO_USUA_CREA, CO_USUA_MODI --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Modificado 3 por     :  Carlos R Marquez E        --*/      
/*---Fecha ModIficacion   :  04/07/2007                --*/         
/*---Detalle Modificacion :  Graba Tipo de Cambio Exterior--*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/      
/*---Comentarios                                       --*/      
/*---                                                  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TCMOVI_CAJA_I14                      --*/      
/*---Grant Execute on SP_TCMOVI_CAJA_I14 to public     --*/       
/*---SP_TCMOVI_CAJA_I14_DENIS                          --*/      
/*-------------------------------------------------------*/      
  
As  
Declare       
   @VNCO_NUEV_NUME TD_IN_001,       
   @VSCO_NUEV_CHAR TD_VC_008,      
   @VNNU_REGI      TD_IN_001,      
   @VSTI_SITU     TD_VC_003,       
   @VSST_AUXI_0004 TD_VC_001,        
   @VSST_AUXI_0002 TD_VC_001,      
   @VSST_INTE_BACH TD_VC_001,      
   @VSTI_OPNI_CARG TD_VC_003,      
   @VSTI_OPNI_ABON TD_VC_003,

@ISCO_EMPR  TD_VC_002,       
 @ISCO_USUA_MODI  TD_VC_008_USUA,      
 @ISCO_CAJA  TD_VC_008,       
 @ISAA_CAJA  TD_VC_004,       
 @ISMM_CAJA  TD_VC_002,       
 @ISTI_MOVI  TD_VC_001,        
 @ISNU_COMP_CAJA  TD_VC_008,       
 @IDFE_OPER  TD_DT_001,       
 @ISCO_TIPO_OPER  TD_VC_003,       
 @ISCO_SUBR  TD_VC_003,       
 @INFA_TIPO_CAMB  TD_NU_015_006,       
 @INFA_CAMB_EXTR  TD_NU_015_006,       
 @INIM_MOVI  TD_NU_016_004,       
 @ISTI_ENTI  TD_VC_001,      
 @ISCO_ENTI  TD_VC_020,       
 @ISDE_NOMB_ORDE TD_VC_100,       
 @ISDE_OBSE  TD_VC_100,       
 @ISTI_CORR_INEG TD_VC_001,      
 @INUL_CORR_INGR TD_IN_001,      
 @INUL_CORR_INEG TD_IN_001,      
 @ISCO_ENTR_REND TD_VC_004,      
 @ISCO_UNID_CNTB TD_VC_003,      
 @IDFE_DIFE   TD_DT_001,       
 @ISNU_SOLI   TD_VC_010,      
 @ISST_ASTO_RESU TD_VC_001,  
 @ISTI_DOCU_ENRE TD_VC_003,  
 @ISNU_DOCU_ENRE TD_VC_020       
      
Begin Tran SP_TCMOVI_CAJA_I14  

SELECT 
@ISCO_EMPR = CO_EMPR,
 @ISCO_USUA_MODI = CO_USUA_MODI,
 @ISCO_CAJA = CO_CAJA,
 @ISAA_CAJA = AA_CAJA,
 @ISMM_CAJA = MM_CAJA,
 @ISTI_MOVI = TI_MOVI,
 @ISNU_COMP_CAJA = NU_COMP_CAJA,
 @IDFE_OPER = FE_OPER,
 @ISCO_TIPO_OPER = CO_TIPO_OPER,
 @ISCO_SUBR = CO_SUBR,
 @INFA_TIPO_CAMB = FA_TIPO_CAMB,
 @INFA_CAMB_EXTR = FA_CAMB_EXTR,
 @INIM_MOVI = IM_MOVI,
 @ISTI_ENTI = TI_ENTI,
 @ISCO_ENTI = CO_ENTI,
 @ISDE_NOMB_ORDE = DE_NOMB_ORDE,
 @ISDE_OBSE = DE_OBSE,
 @ISTI_CORR_INEG = TI_CORR_INEG,
 @INUL_CORR_INGR = UL_CORR_INGR,
 @INUL_CORR_INEG = UL_CORR_INEG,
 @ISCO_ENTR_REND = CO_ENTR_REND,
 @ISCO_UNID_CNTB = CO_UNID_CNTB,
 @IDFE_DIFE = FE_DIFE,
 @ISNU_SOLI = NU_SOLI,
 @ISST_ASTO_RESU = ST_ASTO_RESU,
 @ISTI_DOCU_ENRE = TI_DOCU_ENRE,
 @ISNU_DOCU_ENRE = NU_DOCU_ENRE
FROM #TWMOVI_CAJA_I02
      
 /** inserta en la cabecera de caja **/      
   
 Select @VSST_INTE_BACH = ST_INTE_BACH, @VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER      
 From TMPARA_TESO Where CO_EMPR = @ISCO_EMPR      
   
   
 If Rtrim(@ISCO_ENTR_REND) = ''      
  Select @ISCO_ENTR_REND = NULL      
   
   
 /***---Obtiene Flags para el Tipo de Operacion  ---***/       
 Select  @VSST_AUXI_0004 = IsNull (ST_AUXI_0004,'N'),      
 @VSST_AUXI_0002 = ST_AUXI_0002      
 From    TTTIPO_OPER      
 Where   CO_EMPR = @ISCO_EMPR      
 And CO_TIPO_OPER = @ISCO_TIPO_OPER      
   
 /***---Seteo TI_SITU  en base al Flag del Tipo de Operacion  ---***/       
 Select @VSTI_SITU = ( SubString ('CAR', 1, PatIndex ('S',@VSST_AUXI_0004)*3) + SubString ('ACT', 1, PatIndex    
('N',@VSST_AUXI_0004)*3) )      
      
 /*Busco el ultimo correlativo usado para insertar el nro de comprobante*/       
 If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND       
  @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON      
   
 Exec SP_TTULTI_ASTO_Q01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_UNID_CNTB, @ISCO_TIPO_OPER, @IDFE_OPER, @ISNU_COMP_CAJA    
OUTPUT      
   
 Else      
 Begin      
  Select @VNNU_REGI = Count(*)       
  From TCMOVI_CAJA      
  Where CO_EMPR = @ISCO_EMPR       
  And CO_CAJA = @ISCO_CAJA      
  And AA_CAJA = @ISAA_CAJA      
  And MM_CAJA = @ISMM_CAJA      
  And TI_MOVI = 'I'        
  And NU_COMP_CAJA = @ISNU_COMP_CAJA      
    
  If @VNNU_REGI > 0 OR RTRIM(ISNULL(@ISNU_COMP_CAJA, '')) = ''      
  Begin               
   Select  @VSCO_NUEV_CHAR = ISNULL(MAX(NU_COMP_CAJA), '0')       
   From    TCMOVI_CAJA      
   Where   CO_EMPR = @ISCO_EMPR       
   And CO_CAJA = @ISCO_CAJA      
   And AA_CAJA = @ISAA_CAJA      
   And MM_CAJA = @ISMM_CAJA       
   And TI_MOVI = 'I'        
   And NU_COMP_CAJA LIKE '000%'      
     
   Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1      
     
   Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)      
     
   -- RELLENA DE CEROS HASTA 8 CARACTERES       
   Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'')    
+LTRIM(RTRIM(@VSCO_NUEV_CHAR))      
     
   Select @ISNU_COMP_CAJA = @VSCO_NUEV_CHAR       
  End      
   
 End      
   
 Insert Into TCMOVI_CAJA(       
 CO_EMPR, CO_CAJA, AA_CAJA, MM_CAJA, TI_MOVI, NU_COMP_CAJA, FE_OPER,       
 CO_TIPO_OPER, CO_SUBR, FA_TIPO_CAMB, FA_CAMB_EXTR, IM_MOVI,  TI_ENTI, CO_ENTI,  DE_ENTI,       
 DE_OBSE, ST_CONT, NU_PROC, TI_SITU, CO_ENTR_REND, CO_USUA_CREA, FE_USUA_CREA,     
 CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC, FE_DIFE, NU_SOLI, TI_DOCU_ENRE, NU_DOCU_ENRE )      
 Values (       
 @ISCO_EMPR, @ISCO_CAJA, @ISAA_CAJA, @ISMM_CAJA, @ISTI_MOVI, @ISNU_COMP_CAJA,       
 @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @INFA_TIPO_CAMB, @INFA_CAMB_EXTR, @INIM_MOVI, @ISTI_ENTI,       
 @ISCO_ENTI, @ISDE_NOMB_ORDE, @ISDE_OBSE, 'N', NULL, @VSTI_SITU, @ISCO_ENTR_REND,      
 @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), @ISCO_UNID_CNTB, @IDFE_DIFE, @ISNU_SOLI,  
 @ISTI_DOCU_ENRE, @ISNU_DOCU_ENRE )      
   
 If @@error <> 0      
 Begin      
  Rollback Tran SP_TCMOVI_CAJA_I14  
  Return      
 End          
   
   
 /* Actualizando Estado y Fecha Liquidaci½n Solicitud Caja */      
 Update  TMSOLI_CABA       
 Set  TI_SITU = 'LIQ',       
 FE_LIQU = @IDFE_OPER,      
 CO_USUA_MODI = @ISCO_USUA_MODI,       
 FE_USUA_MODI = GETDATE()      
 Where   CO_EMPR = @ISCO_EMPR      
 And NU_SOLI = @ISNU_SOLI      
   
 If @@error <> 0      
 Begin      
  rollback Tran SP_TCMOVI_CAJA_I14  
  return      
 End        
   
   
 /* ----------- Actualiza los Correlativos ------------------ */      
 If @VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR       
  @ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON      
 Begin    
   
 If @ISTI_CORR_INEG = 'N'      
 Begin      
   
  Select  @INUL_CORR_INGR = UL_CORR_INGR      
  From  TMSACA_MENS      
  WHERE  CO_EMPR = @ISCO_EMPR        
  AND CO_CAJA = @ISCO_CAJA      
  AND AA_CAJA = @ISAA_CAJA      
  AND MM_CAJA = @ISMM_CAJA       
   
   
  Update  TMSACA_MENS      
  Set UL_CORR_INGR = @INUL_CORR_INGR + 1, CO_USUA_MODI = @ISCO_USUA_MODI,       
  FE_USUA_MODI = GETDATE()      
  Where   CO_EMPR = @ISCO_EMPR       
  And CO_CAJA = @ISCO_CAJA      
  And AA_CAJA = @ISAA_CAJA       
  And MM_CAJA = @ISMM_CAJA      
   
  If @@error <> 0      
  Begin      
   Rollback Tran SP_TCMOVI_CAJA_I14  
   Return      
  End      
    
 End      
 Else      
 Begin      
    
  Select  @INUL_CORR_INEG = UL_CORR_INEG      
  From  TMSACA_MENS      
  WHERE  CO_EMPR = @ISCO_EMPR        
  AND CO_CAJA = @ISCO_CAJA      
  AND AA_CAJA = @ISAA_CAJA      
  AND MM_CAJA = @ISMM_CAJA       
    
   
  Update  TMSACA_MENS      
  Set UL_CORR_INEG = @INUL_CORR_INEG + 1, CO_USUA_MODI = @ISCO_USUA_MODI,       
  FE_USUA_MODI = GETDATE()      
  Where   CO_EMPR = @ISCO_EMPR       
  And CO_CAJA = @ISCO_CAJA      
  And AA_CAJA = @ISAA_CAJA       
  And MM_CAJA = @ISMM_CAJA      
    
  If @@error <> 0      
  Begin      
   Rollback Tran SP_TCMOVI_CAJA_I14  
   Return      
  End      
    
 End      
  
End      
      
Commit Tran SP_TCMOVI_CAJA_I14  
      
SELECT @ISNU_COMP_CAJA      
RETURN      
      
/*--------------------------------- Fin ---------------------------------*/  

GO
